package com.zhoug.demo.sendpush.huawei;

/**
 * @description: 类的简要描述
 * @author: 35574
 * @date: 2025/11/4 17:07
 */
public class AndroidConfig {
    /**
     * 批量任务消息标识，消息回执时会返回给应用服务器，应用服务器可以识别bi_tag对消息的下发情况进行统计分析。
     */
    private String bi_tag;
    /**
     * 作用一：完成自分类权益申请后，用于标识消息类型，确定消息提醒方式，对特定类型消息加快发送，取值如下：
     * IM：即时聊天
     * VOIP：音视频通话
     * SUBSCRIPTION：订阅
     * TRAVEL：出行
     * HEALTH：健康
     * WORK：工作事项提醒
     * ACCOUNT：帐号动态
     * EXPRESS：订单&物流
     * FINANCE：财务
     * DEVICE_REMINDER：设备提醒
     * MAIL：邮件
     * PLAY_VOICE：语音播报（仅透传消息支持）
     * MARKETING：内容推荐、新闻、财经动态、生活资讯、社交动态、调研、产品促销、功能推荐、运营活动（仅对内容进行标识，不会加快消息发送）
     * 作用二：申请特殊权限后，用于标识高优先级透传场景，取值如下：
     * VOIP：音视频通话
     * PLAY_VOICE：语音播报
     */
    private String category;
    /**
     * 用户设备离线时，Push服务器对离线消息缓存机制的控制方式，用户设备上线后缓存消息会再次下发，取值如下：
     *
     * 0：对每个应用发送到该用户设备的离线消息只会缓存最新的一条
     * -1：对所有离线消息都缓存（默认值）
     * 1~100：离线消息缓存分组标识，对离线消息进行分组缓存，每个应用每一组最多缓存一条离线消息
     * 如果您发送了10条消息，其中前5条的collapse_key为1，后5条的collapse_key为2，那么待用户上线后collapse_key为1和2的分别下发最新的一条消息给最终用户。
     */
    private Integer collapse_key;
    /**
     * 自定义消息负载，此处如果设置了data，则会覆盖message.data字段。
     */
    private String data;
    /**
     * 快应用发送透传消息时，指定小程序的模式类型，小程序有两种模式开发态和生产态，取值如下：
     *
     * 1：开发态
     * 2：生产态（默认值）
     */
    private Integer fast_app_target;
    /**
     * Android通知栏消息结构体
     */
    private AndroidNotification notification;
    /**
     * 输入一个唯一的回执ID指定本次下行消息的回执地址及配置，该回执ID可以在回执参数配置中查看。
     */
    private String receipt_id;
    /**
     * 0：普通消息（默认值）
     * 1：测试消息。每个应用每日可发送该测试消息500条且不受每日单设备推送数量上限要求
     */
    private Integer target_user_type;
    /**
     * 消息缓存时间，单位是秒。在用户设备没有网络时，消息在Push服务器进行缓存，在消息缓存时间内用户设备重新连接网络，消息会下发，超过缓存时间后消息会丢弃，默认值为“86400s”（1天），最大值为“1296000s”（15天）。
     */
    private String ttl;
    /**
     * 透传消息投递优先级，取值如下：
     *
     * HIGH
     * NORMAL（默认值）
     * 设置为HIGH时需要申请权限，请参见申请特殊权限。
     *
     * HIGH级别消息到达用户手机时可强制拉起应用进程。
     */
    private String urgency;

    public String getBi_tag() {
        return bi_tag;
    }

    public void setBi_tag(String bi_tag) {
        this.bi_tag = bi_tag;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public Integer getCollapse_key() {
        return collapse_key;
    }

    public void setCollapse_key(Integer collapse_key) {
        this.collapse_key = collapse_key;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public Integer getFast_app_target() {
        return fast_app_target;
    }

    public void setFast_app_target(Integer fast_app_target) {
        this.fast_app_target = fast_app_target;
    }

    public AndroidNotification getNotification() {
        return notification;
    }

    public void setNotification(AndroidNotification notification) {
        this.notification = notification;
    }

    public String getReceipt_id() {
        return receipt_id;
    }

    public void setReceipt_id(String receipt_id) {
        this.receipt_id = receipt_id;
    }

    public Integer getTarget_user_type() {
        return target_user_type;
    }

    public void setTarget_user_type(Integer target_user_type) {
        this.target_user_type = target_user_type;
    }

    public String getTtl() {
        return ttl;
    }

    public void setTtl(String ttl) {
        this.ttl = ttl;
    }

    public String getUrgency() {
        return urgency;
    }

    public void setUrgency(String urgency) {
        this.urgency = urgency;
    }
}
